package entity.Encomienda;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import dto.Encomienda.DTO_HojaDeRuta;
import dto.Encomienda.DTO_Trayecto;

@Entity
@Table(name="HojaRuta")
public class Entity_HojaDeRuta {

	@Id
	@GeneratedValue (strategy = GenerationType.AUTO)
	private Integer id;
	@OneToOne
	@JoinColumn(name="idEnvio")
	private Entity_Envio envio;
	@OneToMany(cascade = CascadeType.ALL)
    @JoinColumn(name = "idHojaRuta")
	private List<Entity_Trayecto> trayectos;
	public Entity_HojaDeRuta() {

	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Entity_Envio getEnvio() {
		return envio;
	}
	public void setEnvio(Entity_Envio envio) {
		this.envio = envio;
	}
	public List<Entity_Trayecto> getTrayectos() {
		return trayectos;
	}
	public void setTrayectos(List<Entity_Trayecto> trayectos) {
		this.trayectos = trayectos;
	}
	
	
	public DTO_HojaDeRuta toDTO() {
		DTO_HojaDeRuta hr = new DTO_HojaDeRuta();
		hr.setId(this.getId());
		List<DTO_Trayecto> lista = new ArrayList<DTO_Trayecto>();
		for(Entity_Trayecto t:this.trayectos)
			lista.add(t.toDTO());
		hr.setTrayectos(lista);
		return hr;
	}
	
	
	

}
